package com.aaa.dem1108.d01;

/**
 * @Author: whj
 * @Version 1.0
 * @Date: 2022/11/8  14:46
 */
public class Singleton {
    //第一步
    private Singleton() {}
    //声明一个静态的本类对象----懒汉式
    private volatile static Singleton singleton;
    //提供一个静态方法返回本类的对象
    public static Singleton getInstance() {
        //如果多个线程进来后发现sington不等于null,则无需在获取锁对象
        if(singleton==null){
            synchronized (Singleton.class){
                //如果对象不等于null则无需创建对象
                if(singleton==null){
                    singleton=new Singleton();
                }
            }
        }
        return singleton;
    }

    public void show() {
        System.out.println("~~~~~~~~~~~~~~~~~~~~~show方法~~~~~~~~~~~~~~~");
    }
}
